package echecs.tools;

import java.awt.Color;
import java.awt.Image;

public interface ChessInterface {

    String[] col = {"a", "b", "c", "d", "e", "f", "g", "h"};
    String[] rg = {"8", "7", "6", "5", "4", "3", "2", "1"};
    int PAWN = 1, KNIGHT = 2, BISHOP = 3, ROOK = 4;
    int QUEEN = 5, KING = 6, WHITE = 1;
    String[] NomPiecesBlanches = {"P", "C", "F", "T", "Q", "R"};
    String[] NomPiecesNoires = {"p", "c", "f", "t", "d", "r"};
    int[] deplacementKnight = {12, -12, +21, -21, +19, -19, +8, -8};
    int[] deplacementBishop = {-9, -11, +9, +11};
    int[] deplacementRook = {-10, 10, -1, 1};
    int[] deplacementKing = {-9, -11, +9, +11, -10, 10, -1, 1};
    int[] board = new int[120];
    int[] graphboard = new int[120];
    Color dunkel = new Color(0x999999), hell = new Color(0xFFFFCC);
    Color red = new Color(0xCC0000), green = new Color(0x009900);
    Color blue = new Color(0x000099);
    Image[] pieces = new Image[18];
    int[] movelist = new int[250];

    void enterFenPosition(String fenPosition);

    void execute(int start, int end);

    boolean ischeck();

    void genmove();

    boolean ishHumanMoveValid(int move);

    void multisimulize(int start, int inc);

    void simulize(int start, int end);

    void BlackPawn(int i);

    void WhitePawn(int i);

    void addMove(int start, int end);

    void changePawnIfLastRange(int end);

    void grandRoque(int i);

    boolean isInBoard(int end);

    void petitRoque(int i);

    int[] simuleMove(int start, int end);

    void undoSimuleMove(int start, int[] ret, int end);

    void printMoveList();

    String toStr(int m);
}
